package com.rain.rainspringboot3.encryption.strategy;


import com.rain.rainspringboot3.encryption.exception.DecryptionException;
import com.rain.rainspringboot3.encryption.exception.EncryptionException;

/**
 * 加密策略接口
 * 定义加密和解密的通用方法
 */
public interface EncryptionStrategy {
    /**
     * 加密方法
     * @param content 明文内容
     * @param key 加密密钥
     * @return 密文
     * @throws EncryptionException 加密异常
     */
    String encrypt(String content, String key) throws EncryptionException;
    
    /**
     * 解密方法
     * @param content 密文内容
     * @param key 解密密钥
     * @return 明文
     * @throws DecryptionException 解密异常
     */
    String decrypt(String content, String key) throws DecryptionException;
    
    /**
     * 生成密钥
     * @return 密钥字符串
     */
    String generateKey();
}